클로드 코드 완벽 가이드 — 9장 클로드의 생각 과정 제어하기 딥다이브 학습 노트
출처: 클로드 코드 완벽 가이드 (코드팩토리 최지호) | 참고: https://github.com/codefactory-co
9장에서 다루는 내용
- CoT(Chain of Thought)의 이해 — AI에게 단계별로 사고하도록 유도하는 프롬프팅 기법
- CoT 유도하기 — 프롬프트에 '생각해라'를 넣어 사고 과정을 이끌어내는 방법
- XML 태그로 사고와 답변 분리 —
<thinking>과<answer>태그로 구조화된 응답 얻기 - 확장된 사고(Extended Thinking) — 사고 예산을 할당해 더 깊고 복잡한 추론을 수행하는 고급 기능
전체 흐름도
[AI 응답 품질 향상]
|
v
+------------------------------+ +-------------------------------+
| CoT (Chain of Thought) | | 확장된 사고 (Extended Thinking)|
| 사고의 사슬 프롬프팅 | | 사고 예산 기반 심층 추론 |
| | | |
| 방법 1: "생각해라" 키워드 | | 트리거: "고민해라" 키워드 |
| → 단계별 답변 유도 | | → Think (기본 사고) |
| | | → Think Hard (깊은 사고) |
| 방법 2: XML 태그 분리 | | → Think Harder (더 깊은 사고) |
| → <thinking> + <answer> | | |
| → 사고/답변 명확 구분 | | 수만 토큰 사고 예산 할당 |
+------------------------------+ +-------------------------------+
| |
v v
정확성 + 일관성 향상 복잡한 문제 해결 + 에지 케이스 커버
선수 지식 체크리스트
- [ ] 프롬프트 기본 개념 (AI에게 지시하는 방법)
- [ ] 클로드 코드 기본 사용법 (프롬프트 입력/응답 확인)
- [ ] XML 태그 기초 (
<tag>내용</tag>형태) - [ ] REST API 기본 개념 (예제 이해를 위해)
핵심 키워드
| 키워드 | 의미 |
|---|---|
| CoT (Chain of Thought) | 사고의 사슬. AI에게 결론 전에 단계별 사고 과정을 명시하도록 유도하는 프롬프팅 기법 |
| 확장된 사고 (Extended Thinking) | 수만 토큰의 사고 예산을 할당하여 AI가 더 깊이 추론하게 하는 고급 기능 |
| 사고 예산 (Thinking Budget) | 확장된 사고에서 AI가 사용할 수 있는 사고 토큰의 양 |
| XML 태그 분리 | <thinking>, <answer> 등 태그를 사용해 사고와 답변을 구조적으로 구분하는 기법 |
| 플래닝 모드 | 클로드 코드에서 생각 과정을 회색으로, 답변을 별도로 표시하는 모드 |
섹션 1: CoT의 이해
한 줄 요약
CoT는 AI에게 "결론부터 말하지 말고 과정을 차근차근 설명해봐"라고 요청하는 프롬프팅 기법이다.
쉬운 설명 (수학 시험 비유)
"수학 시험에서 답만 적으면 부분 점수를 못 받지만, 풀이 과정을 써놓으면 어디서 틀렸는지 알 수 있고, 선생님도 확인할 수 있다."
AI도 마찬가지다: - CoT 없이: "REST API 설계해줘" → 바로 결론만 제시 (과정이 보이지 않음) - CoT 사용: "단계별로 생각해서 REST API 설계해줘" → 1단계 리소스 식별 → 2단계 URL 설계 → ... → 결론
CoT를 적용해야 하는 이유 3가지
┌──────────────────────────────────────────────────────────┐
│ 1. 정확성(Accuracy) 향상 │
│ 수학, 논리 추론, 복합 분석 등 여러 단계 작업에서 │
│ 각 단계를 검증하므로 오류를 획기적으로 줄임 │
├──────────────────────────────────────────────────────────┤
│ 2. 일관성(Coherence) 향상 │
│ 결과물이 더욱 긴밀하고 체계적인 구성을 갖춤 │
├──────────────────────────────────────────────────────────┤
│ 3. 디버깅 용이성(Debugging) │
│ 논리적 흐름이 투명하게 보이므로, 어느 추론 단계에서 │
│ 문제가 발생했는지 파악하고 프롬프트를 수정하기 쉬움 │
└──────────────────────────────────────────────────────────┘
CoT가 불필요한 경우
단, 모든 작업에 CoT가 필요한 것은 아니다. 응답 속도가 중요하거나 작업이 단순한 경우에는 오히려 비효율적이다. 성능과 지연 시간 사이의 균형을 고려하여 신중하게 사용해야 한다.
핵심 체크포인트
- [ ] CoT = "사고의 사슬", 단계별 사고 과정을 명시적으로 기술하도록 유도
- [ ] 정확성, 일관성, 디버깅 용이성 — 세 가지 핵심 이점 기억
- [ ] 단순한 작업에는 CoT가 오히려 비효율적 (속도 vs 성능 트레이드오프)
섹션 2: CoT 유도하기
한 줄 요약
프롬프트에 "생각해라", "단계별로 설명해줘" 같은 문구만 넣으면 CoT를 유도할 수 있다.
쉬운 설명 (선생님 비유)
"학생에게 '답만 말해봐'라고 하면 답만 나오지만, '풀이 과정을 보여줘'라고 하면 과정을 하나하나 적어준다. AI도 똑같다."
실무 예제: REST API 설계 — CoT 유도
❌ CoT 없이 (단순 요청)
단순히 REST API를 어떻게 설계 할 수 있는지 단계별로 생각하고 답변해줘.
→ 클로드가 단계별로 답변하지만, 사고 과정이 자세하지 않고 어디까지가 생각인지 모호
✅ CoT + XML 태그 분리 (구조화된 요청)
REST API를 구축하려면 어떻게 해야 해? 생각 과정을 <thinking> 태그에 입력해주고
생각한 과정을 분석하고 그를 기반으로 <answer> 태그에 답변을 입력해줘.
→ <thinking> 안에 사고 과정이 명확히 분리되고, <answer> 안에 정리된 답변 제공
XML 태그로 사고와 답변 분리하기
프롬프트:
"생각 과정을 <thinking> 태그에, 답변을 <answer> 태그에 입력해줘"
AI 응답 구조:
<thinking>
REST API 구축에 대한 질문입니다. 다음과 같은 순서로 설명하면 좋을 것 같습니다:
1. REST API의 개념과 원칙
2. 기술 스택 선택
3. API 설계 과정
...
각 단계별로 구체적이고 실용적인 정보를 제공해야 합니다.
</thinking>
<answer>
REST API를 구축하는 방법을 단계별로 설명드리겠습니다.
1. REST API 기본 개념 이해
- 자원(Resource): URI로 식별
- 행위(Verb): HTTP 메서드 (GET, POST, PUT, DELETE)
- 표현(Representation): JSON, XML 등
2. 기술 스택 선택
- Node.js: Express.js, Fastify, NestJS
- Python: Django REST Framework, FastAPI, Flask
...
</answer>
플래닝 모드에서의 표시
클로드 코드의 플래닝 모드에서 XML 형태로 답변을 요구하면 실제 XML 태그는 생략해서 답변하는 경우가 있다. 하지만 생각은 제시된 플랜 위에 회색으로 표시되므로 사고와 답변을 쉽게 구분할 수 있다.
핵심 체크포인트
- [ ] "생각해라", "단계별로 설명해줘" — 이런 키워드만으로 CoT 유도 가능
- [ ] XML 태그(
<thinking>,<answer>)로 사고/답변을 명확히 분리 - [ ] 클로드 코드 플래닝 모드에서는 생각이 회색, 답변이 별도로 표시됨
섹션 3: 확장된 사고 (Extended Thinking)
한 줄 요약
확장된 사고는 AI에게 "더 오래, 더 깊이" 생각하도록 사고 예산(토큰)을 할당하여 복잡한 문제를 해결하는 고급 기능이다.
쉬운 설명 (시험 시간 비유)
"수학 시험에서 10분 주면 간단한 문제만 풀 수 있지만, 2시간 주면 어려운 응용문제도 충분히 고민하고 풀 수 있다. 확장된 사고는 AI에게 '시간을 더 줄게, 깊이 생각해봐'라고 하는 것이다."
확장된 사고의 3단계 강도
┌─────────────────────────────────────────────────────────────┐
│ 단계 1: "고민해라" (Think) │
│ → 기본 수준의 확장된 사고 │
│ → 예: "이 프로젝트를 분석하고 고민한 다음 테스트 코드 작성해줘" │
├─────────────────────────────────────────────────────────────┤
│ 단계 2: "깊게 고민해라" (Think Hard) │
│ → 더 오랜 사고 유도 │
│ → 예: "Think hard: 이 함수 테스트의 엣지 케이스들을 추가해줘" │
├─────────────────────────────────────────────────────────────┤
│ 단계 3: "더 깊게 고민해라" (Think Harder) │
│ → 가장 깊은 수준의 사고 │
│ → 예: "다루지 않은 에지 케이스에 대해 더욱 깊게 고민해줘" │
└─────────────────────────────────────────────────────────────┘
실무 예제: 테스트 코드 작성에 활용
❌ 확장된 사고 없이
이 프로젝트에 테스트 코드를 작성해줘.
→ 기본적인 테스트만 생성, 에지 케이스 누락 가능
✅ 확장된 사고 활용
이 프로젝트를 충분히 분석하고 고민한 다음 테스트 코드를 작성해줘.
→ 프로젝트 구조를 먼저 파악하고, 다양한 시나리오를 고려한 테스트 생성
✅ 더 깊은 확장된 사고
다루지 않은 에지 케이스에 대해 더욱 깊게 고민해줘.
→ 경계값, 예외 상황, 동시성 문제 등 다양한 에지 케이스까지 커버
한국어 프롬프팅 팁
한국어로 프롬프팅할 때 더 확실히 사고 수준을 유도하고 싶다면, 프롬프트 앞에 원하는 생각 수준을 먼저 작성한다:
- Think: 이 프로젝트에 필요한 보안 작업을 고민해줘
- Think hard: 이 함수 테스트의 엣지 케이스들을 추가해줘
실무 예제: 암호화폐 대시보드 REST API
책에서는 Next.js + React + Supabase 기반 암호화폐 순위 대시보드 프로젝트에서 REST API 설계를 요청하는 예제를 보여준다:
프로젝트 컨텍스트:
- Next.js 15.2.4와 React 19로 구축된 암호화폐 순위 대시보드
- Supabase Auth 인증 시스템 적용 예정
- 한국어로 번역된 UI
확장된 사고 결과 (클로드의 생각 과정):
1. 암호화폐 데이터 관련 API 목록 도출
2. 사용자 관련 API 설계
3. 데이터베이스 스키마 설계 (profiles, portfolios, watchlist 등)
핵심 체크포인트
- [ ] 확장된 사고 = 사고 예산(Thinking Budget)을 할당하여 수만 토큰 규모로 깊이 추론
- [ ] 3단계: 고민해라(Think) → 깊게 고민해라(Think Hard) → 더 깊게 고민해라(Think Harder)
- [ ] 한국어 프롬프트에서도
Think:,Think hard:접두사로 사고 수준 지정 가능 - [ ] 단순 작업보다 복잡한 설계, 에지 케이스 커버, 보안 분석 등에 효과적
연습문제
문제 1 (기본)
다음 중 CoT(Chain of Thought) 프롬프팅을 올바르게 설명한 것은? - A) AI의 학습 데이터를 늘리는 기법 - B) AI에게 결론 전에 단계별 사고 과정을 명시하도록 유도하는 기법 - C) AI의 응답 속도를 높이는 기법 - D) AI 모델의 파라미터를 조정하는 기법
정답 보기
B — CoT는 AI가 최종 답변을 내놓기 전에 사고 과정을 명시적으로 기술하도록 유도하는 프롬프팅 기법이다. 인간이 복잡한 문제를 풀 때 단계를 나누어 생각하는 과정과 유사하다.문제 2 (중급)
REST API 설계를 요청할 때, 다음 두 프롬프트의 차이점을 설명하라:
- 프롬프트 A: "REST API를 설계해줘"
- 프롬프트 B: "REST API를 설계해줘. 생각 과정을 <thinking> 태그에, 답변을 <answer> 태그에 입력해줘"
정답 보기
프롬프트 A는 결론만 바로 제시하므로 사고 과정이 보이지 않아 디버깅이 어렵다. 프롬프트 B는 XML 태그로 사고와 답변을 분리하므로, AI의 추론 과정을 투명하게 확인할 수 있고, 잘못된 추론 단계를 찾아 프롬프트를 수정하기 쉽다.문제 3 (심화)
확장된 사고(Extended Thinking)에서 "고민해라", "깊게 고민해라", "더 깊게 고민해라"의 차이를 실무 시나리오로 설명하라. 테스트 코드 작성 상황을 예로 들어라.
정답 보기
- **고민해라(Think)**: "이 프로젝트를 분석하고 고민한 다음 테스트 코드를 작성해줘" → 기본적인 단위 테스트와 통합 테스트를 생성 - **깊게 고민해라(Think Hard)**: "이 함수 테스트의 엣지 케이스들을 추가해줘" → 경계값, null 입력, 빈 배열 등 에지 케이스를 포함한 테스트 생성 - **더 깊게 고민해라(Think Harder)**: "다루지 않은 에지 케이스에 대해 더욱 깊게 고민해줘" → 동시성 문제, 메모리 초과, 네트워크 타임아웃, 권한 충돌 등 극단적 시나리오까지 커버 단계가 올라갈수록 사고 예산(토큰)이 더 많이 할당되어 더 깊고 다양한 케이스를 고려한다.부록 A: 용어 사전
| 용어 | 영문 | 정의 |
|---|---|---|
| 사고의 사슬 | Chain of Thought (CoT) | AI에게 단계별 사고 과정을 명시하도록 유도하는 프롬프팅 기법 |
| 확장된 사고 | Extended Thinking | 수만 토큰의 사고 예산을 할당하여 AI가 더 깊이 추론하게 하는 기능 |
| 사고 예산 | Thinking Budget | 확장된 사고에서 AI에게 할당되는 사고용 토큰의 양 |
| 정확성 | Accuracy | CoT 적용 시 각 단계를 검증하여 오류를 줄이는 효과 |
| 일관성 | Coherence | CoT로 체계적이고 긴밀한 구성의 결과물을 얻는 효과 |
| 디버깅 용이성 | Debugging | 사고 과정이 투명하여 문제 단계를 파악하기 쉬운 효과 |
| 플래닝 모드 | Planning Mode | 클로드 코드에서 생각과 답변을 시각적으로 구분해 표시하는 모드 |
부록 B: 비교표
CoT vs 확장된 사고 비교
| 구분 | CoT (Chain of Thought) | 확장된 사고 (Extended Thinking) |
|---|---|---|
| 개념 | 단계별 사고 과정 유도 | 사고 예산을 할당한 심층 추론 |
| 유도 방법 | "생각해라", "단계별로" | "고민해라", "Think Hard" |
| 사고 깊이 | 기본적인 단계별 분석 | 수만 토큰 규모의 깊은 추론 |
| 적합한 작업 | 일반적 분석, 설계 | 복잡한 설계, 에지 케이스, 보안 |
| 비용 | 추가 토큰 소비 적음 | 사고 예산만큼 토큰 소비 증가 |
| 속도 | 상대적으로 빠름 | 사고 시간이 길어짐 |
확장된 사고 강도별 비교
| 강도 | 키워드 | 영문 | 사고 깊이 | 적합한 상황 |
|---|---|---|---|---|
| 1단계 | 고민해라 | Think | 기본 | 일반적인 분석, 기본 테스트 작성 |
| 2단계 | 깊게 고민해라 | Think Hard | 깊음 | 에지 케이스 추가, 상세 설계 |
| 3단계 | 더 깊게 고민해라 | Think Harder | 매우 깊음 | 극단적 시나리오, 보안 감사 |
부록 C: 참고 자료
| 자료 | URL / 출처 |
|---|---|
| 클로드 코드 완벽 가이드 GitHub | https://github.com/codefactory-co |
| Anthropic 공식 문서 — Extended Thinking | https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking |
| Chain of Thought Prompting 원논문 (Wei et al., 2022) | https://arxiv.org/abs/2201.11903 |
| Anthropic 프롬프트 엔지니어링 가이드 | https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering |
| 클로드 코드 공식 문서 | https://docs.anthropic.com/en/docs/claude-code |
클릭하거나 Space를 눌러 뒤집기